#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;

void test0(){
    string str1("wangdao");
    //1.通过下标访问遍历string
    /* cout << str1[0] << endl; */
    /* cout << str1[1] << endl; */
    for(size_t idx = 0; idx < str1.size(); ++idx){
        cout << str1[idx] << " ";
    }
    cout << endl;

    //2.增强for循环 (通常与auto连用)
    //把string视为存放char型元素的容器
    //每次从容器中取出一个元素
    //
    //加引用，操作的就是元素本身
    //不加引用，操作的是元素的副本
    /* for(auto & ch : str1){ */
    /*     ch++; */
    /* } */
    /* cout << endl; */

    for(auto & ch : str1){
        cout << ch << " ";
    }
    cout << endl;

    //3.通过迭代器遍历string
    auto it = str1.begin();
    for(;it != str1.end(); ++it){
        cout << *it << " ";
        /* cout << &*it << " "; */
        /* printf("%p\n",&*it); */
    }
    cout << endl;


}

int main(void){
    test0();
    return 0;
}
